﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Telerik.Web.UI;

namespace ProjectSem40701.Admin
{
    public partial class QuestionRoundAdd : System.Web.UI.Page
    {
        //Declare member variables/constant here
        private const string SUCCESS = "success";
        private const string FAIL = "fail";
        private const string NOT_CHECKED = "notchecked";

        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void QuestionStatusLabel_DataBinding(object sender, EventArgs e)
        {
            Label QuestionStatusLabel = (Label)sender;
            switch (QuestionStatusLabel.Text)
            {
                case "1": QuestionStatusLabel.Text = "Kích hoạt";
                    break;
                case "0": QuestionStatusLabel.Text = "Khoá";
                    break;
                default: QuestionStatusLabel.Text = "Khoá";
                    break;
            }
        }

        protected void cbbExam_SelectedIndexChanged(object sender, EventArgs e)
        {
            this.cbbRound.DataBind();
        }

        protected void cbbExam_DataBound(object sender, EventArgs e)
        {
            this.cbbRound.DataBind();
        }

        //Add questions to the selected round
        protected void btnAdd_Click(object sender, EventArgs e)
        {
            //trang nao biet trang day thoi, trang sau khong hieu
            try
            {
                int checkedCount = 0;
                foreach (GridDataItem item in this.rgrQuestion.Items)
                {
                    CheckBox chkbChoose = item.FindControl("chkbChoose") as CheckBox;
                    if (chkbChoose.Checked)
                    {
                        AddQuestionToRound(Convert.ToInt32(item["QuestionID"].Text.ToString()),
                            Convert.ToInt32(this.cbbRound.SelectedValue.ToString()));
                        checkedCount++;
                    }
                }
                //kiem tra xem nguoi dung co chon cau hoi nao khong
                if (checkedCount > 0)
                {
                    //bao thanh cong     
                    ShowDialog(SUCCESS);
                }
                else
                {
                    ShowDialog(NOT_CHECKED);
                }
            } 
            catch(Exception)
            { 
                //bao that bai
                ShowDialog(FAIL);
            }
        }

        //Thêm question vào round
        private void AddQuestionToRound(int qid, int rid)
        {
            AdminXSD.QuestionRoundTableAdapters.tbl_Question_RoundTableAdapter
                    dp = new AdminXSD.QuestionRoundTableAdapters.tbl_Question_RoundTableAdapter();
            int ok = dp.tbl_QuestionRound_Insert(qid, rid);
            if (ok < 1)
            {
                throw new Exception("Thêm mới thất bại");
            }
        }

        //Show dialog here
        private void ShowDialog(string IsSuccess)
        {
            switch (IsSuccess)
            { 
                case SUCCESS:
                        //bao thanh cong
                        this.ltrMessage.Text = "Thêm câu hỏi vào vòng thi thành công";
                        this.lblSuccess.Text = SUCCESS;
                        this.btnAdd_ModalPopupExtender.Enabled = true;
                        this.btnAdd_ModalPopupExtender.Show();
                    break;
                case FAIL:
                        this.ltrMessage.Text = "Có lỗi xảy ra, thêm câu hỏi vào vòng thi không thành công";
                        this.lblSuccess.Text = FAIL;
                        this.btnAdd_ModalPopupExtender.Enabled = true;
                        this.btnAdd_ModalPopupExtender.Show();
                    break;
                case NOT_CHECKED:
                        this.ltrMessage.Text = "Bạn phải chọn một câu hỏi";
                        this.lblSuccess.Text = NOT_CHECKED;
                        this.btnAdd_ModalPopupExtender.Enabled = true;
                        this.btnAdd_ModalPopupExtender.Show();
                    break;
                default:
                        this.ltrMessage.Text = "Có lỗi xảy ra, thêm câu hỏi vào vòng thi không thành công";
                        this.lblSuccess.Text = FAIL;
                        this.btnAdd_ModalPopupExtender.Enabled = true;
                        this.btnAdd_ModalPopupExtender.Show();
                    break;
            }
        }

        //Nút Yes trên modal popup được ấn
        protected void btnYes_Click(object sender, EventArgs e)
        {
            switch (this.lblSuccess.Text)
            {
                case SUCCESS:
                    Response.Redirect("RoundEdit.aspx?rid=" + this.cbbRound.SelectedValue);
                    break;

                case FAIL:
                        this.btnAdd_ModalPopupExtender.Enabled = false;
                    break;

                case NOT_CHECKED:
                        this.btnAdd_ModalPopupExtender.Enabled = false;
                    break;
                default:
                        this.btnAdd_ModalPopupExtender.Enabled = false;
                    break;
            }
        }
    }
}
